From 3f5d21abecd231d656bc9fe00d62c34771e912b3 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 4 May 2014 11:09:52 -0400 Subject: [PATCH] parasite: Use template for button path --- modules/other/parasite/Makefile.am | 17 ++++++ modules/other/parasite/button-path.c | 60 ++++++------------- modules/other/parasite/button-path.h | 40 +++++++------ modules/other/parasite/button-path.ui | 35 +++++++++++ modules/other/parasite/module.c | 3 + modules/other/parasite/parasite.gresource.xml | 6 ++ modules/other/parasite/window.c | 4 +- 7 files changed, 103 insertions(+), 62 deletions(-) create mode 100644 modules/other/parasite/button-path.ui create mode 100644 modules/other/parasite/parasite.gresource.xml diff --git a/modules/other/parasite/Makefile.am b/modules/other/parasite/Makefile.am index 03243d61e8..2b023dd2b6 100644 --- a/modules/other/parasite/Makefile.am +++ b/modules/other/parasite/Makefile.am @@ -2,7 +2,21 @@ moduledir = $(libdir)/gtk-3.0/modules module_LTLIBRARIES = libgtkparasite.la +resource_files = $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/parasite.gresource.xml) +resources.h: parasite.gresource.xml + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/parasite.gresource.xml \ + --target=$@ --sourcedir=$(srcdir) --c-name parasite --generate-header --manual-register +resources.c: parasite.gresource.xml $(resource_files) + $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) $(srcdir)/parasite.gresource.xml \ + --target=$@ --sourcedir=$(srcdir) --c-name parasite --generate-source --manual-register + +BUILT_SOURCES = \ + resources.h \ + resources.c + libgtkparasite_la_SOURCES = \ + resources.h \ + resources.c \ inspect-button.c \ module.c \ parasite.h \ @@ -49,4 +63,7 @@ libgtkparasite_la_LIBADD = \ $(top_builddir)/gtk/libgtk-3.la \ $(GTK_DEP_LIBS) +EXTRA_DIST= \ + $(resource_files) + -include $(top_srcdir)/git.mk diff --git a/modules/other/parasite/button-path.c b/modules/other/parasite/button-path.c index b8f35102fe..2840949886 100644 --- a/modules/other/parasite/button-path.c +++ b/modules/other/parasite/button-path.c @@ -24,63 +24,41 @@ struct _ParasiteButtonPathPrivate { - GtkWidget *sw; - GtkWidget *button_box; + GtkWidget *sw; + GtkWidget *button_box; }; -G_DEFINE_TYPE_WITH_PRIVATE (ParasiteButtonPath, parasite_buttonpath, GTK_TYPE_BOX) +G_DEFINE_TYPE_WITH_PRIVATE (ParasiteButtonPath, parasite_button_path, GTK_TYPE_BOX) static void -parasite_buttonpath_init (ParasiteButtonPath *bp) +parasite_button_path_init (ParasiteButtonPath *bp) { - GtkWidget *label; - - bp->priv = parasite_buttonpath_get_instance_private (bp); - - g_object_set (bp, - "orientation", GTK_ORIENTATION_HORIZONTAL, - NULL); - - bp->priv->sw = g_object_new (GTK_TYPE_SCROLLED_WINDOW, - "hscrollbar-policy", GTK_POLICY_AUTOMATIC, - "vscrollbar-policy", GTK_POLICY_NEVER, - "hexpand", TRUE, - NULL); - gtk_container_add (GTK_CONTAINER (bp), bp->priv->sw); - - bp->priv->button_box = g_object_new (GTK_TYPE_BOX, - "orientation", GTK_ORIENTATION_HORIZONTAL, - "hexpand", TRUE, - "margin", 6, - NULL); - gtk_style_context_add_class (gtk_widget_get_style_context (bp->priv->button_box), "linked"); - gtk_container_add (GTK_CONTAINER (bp->priv->sw), bp->priv->button_box); - - label = g_object_new (GTK_TYPE_LABEL, - "label", "Choose a widget through the inspector", - "xalign", 0.5, - "hexpand", TRUE, - NULL); - gtk_container_add (GTK_CONTAINER (bp->priv->button_box), label); + bp->priv = parasite_button_path_get_instance_private (bp); + gtk_widget_init_template (GTK_WIDGET (bp)); } static void -parasite_buttonpath_class_init(ParasiteButtonPathClass *klass) +parasite_button_path_class_init (ParasiteButtonPathClass *klass) { + GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass); + + gtk_widget_class_set_template_from_resource (widget_class, "/org/gtk/parasite/button-path.ui"); + gtk_widget_class_bind_template_child_private (widget_class, ParasiteButtonPath, sw); + gtk_widget_class_bind_template_child_private (widget_class, ParasiteButtonPath, button_box); } GtkWidget * -parasite_buttonpath_new () +parasite_button_path_new (void) { - return GTK_WIDGET (g_object_new (PARASITE_TYPE_BUTTONPATH, NULL)); + return GTK_WIDGET (g_object_new (PARASITE_TYPE_BUTTON_PATH, NULL)); } void -parasite_buttonpath_set_widget(ParasiteButtonPath *bp, - GtkWidget *widget) +parasite_button_path_set_widget (ParasiteButtonPath *bp, + GtkWidget *widget) { - char *path, **words; - int i; + gchar *path, **words; + gint i; GtkWidget *b; GtkContainer *box = GTK_CONTAINER (bp->priv->button_box); @@ -100,4 +78,4 @@ parasite_buttonpath_set_widget(ParasiteButtonPath *bp, g_free (path); } -// vim: set et sw=4 ts=4: +// vim: set et sw=2 ts=2: diff --git a/modules/other/parasite/button-path.h b/modules/other/parasite/button-path.h index e05424c3e2..b6e3e79a2d 100644 --- a/modules/other/parasite/button-path.h +++ b/modules/other/parasite/button-path.h @@ -19,42 +19,44 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -#ifndef _GTKPARASITE_BUTTONPATH_H_ -#define _GTKPARASITE_BUTTONPATH_H_ +#ifndef _GTKPARASITE_BUTTON_PATH_H_ +#define _GTKPARASITE_BUTTON_PATH_H_ #include -#define PARASITE_TYPE_BUTTONPATH (parasite_buttonpath_get_type()) -#define PARASITE_BUTTONPATH(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PARASITE_TYPE_BUTTONPATH, ParasiteButtonPath)) -#define PARASITE_BUTTONPATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PARASITE_TYPE_BUTTONPATH, ParasiteButtonPathClass)) -#define PARASITE_IS_BUTTONPATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PARASITE_TYPE_BUTTONPATH)) -#define PARASITE_IS_BUTTONPATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PARASITE_TYPE_BUTTONPATH)) -#define PARASITE_BUTTONPATH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PARASITE_TYPE_BUTTONPATH, ParasiteButtonPathClass)) +#define PARASITE_TYPE_BUTTON_PATH (parasite_button_path_get_type()) +#define PARASITE_BUTTON_PATH(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), PARASITE_TYPE_BUTTON_PATH, ParasiteButtonPath)) +#define PARASITE_BUTTON_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), PARASITE_TYPE_BUTTON_PATH, ParasiteButtonPathClass)) +#define PARASITE_IS_BUTTON_PATH(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), PARASITE_TYPE_BUTTON_PATH)) +#define PARASITE_IS_BUTTON_PATH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), PARASITE_TYPE_BUTTON_PATH)) +#define PARASITE_BUTTON_PATH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), PARASITE_TYPE_BUTTON_PATH, ParasiteButtonPathClass)) typedef struct _ParasiteButtonPathPrivate ParasiteButtonPathPrivate; -typedef struct _ParasiteButtonPath { - GtkBox parent; - ParasiteButtonPathPrivate *priv; +typedef struct _ParasiteButtonPath +{ + GtkBox parent; + ParasiteButtonPathPrivate *priv; } ParasiteButtonPath; -typedef struct _ParasiteButtonPathClass { - GtkBoxClass parent; +typedef struct _ParasiteButtonPathClass +{ + GtkBoxClass parent; } ParasiteButtonPathClass; G_BEGIN_DECLS -GType parasite_buttonpath_get_type (); -GtkWidget *parasite_buttonpath_new (); -void parasite_buttonpath_set_widget (ParasiteButtonPath *bp, - GtkWidget *widget); +GType parasite_button_path_get_type (void); +GtkWidget *parasite_button_path_new (void); +void parasite_button_path_set_widget (ParasiteButtonPath *bp, + GtkWidget *widget); G_END_DECLS -#endif // _GTKPARASITE_BUTTONPATH_H_ +#endif // _GTKPARASITE_BUTTON_PATH_H_ -// vim: set et sw=4 ts=4: +// vim: set et sw=2 ts=2: diff --git a/modules/other/parasite/button-path.ui b/modules/other/parasite/button-path.ui new file mode 100644 index 0000000000..2ab03a73bf --- /dev/null +++ b/modules/other/parasite/button-path.ui @@ -0,0 +1,35 @@ + + + + diff --git a/modules/other/parasite/module.c b/modules/other/parasite/module.c index 3c7206068d..b093f45d34 100644 --- a/modules/other/parasite/module.c +++ b/modules/other/parasite/module.c @@ -25,6 +25,7 @@ #include "config.h" #include "parasite.h" #include "python-hooks.h" +#include "resources.h" void @@ -34,6 +35,8 @@ gtk_module_init(gint *argc, gchar ***argv) parasite_python_init(); #endif + parasite_register_resource (); + gtkparasite_window_create(); } diff --git a/modules/other/parasite/parasite.gresource.xml b/modules/other/parasite/parasite.gresource.xml new file mode 100644 index 0000000000..ec422dfa25 --- /dev/null +++ b/modules/other/parasite/parasite.gresource.xml @@ -0,0 +1,6 @@ + + + + button-path.ui + + diff --git a/modules/other/parasite/window.c b/modules/other/parasite/window.c index 9bf3f348d4..bc6868d9af 100644 --- a/modules/other/parasite/window.c +++ b/modules/other/parasite/window.c @@ -53,7 +53,7 @@ on_widget_tree_selection_changed (ParasiteWidgetTree *widget_tree, GtkWidget *widget = GTK_WIDGET (selected); gtkparasite_flash_widget(parasite, widget); - parasite_buttonpath_set_widget (PARASITE_BUTTONPATH (parasite->button_path), widget); + parasite_button_path_set_widget (PARASITE_BUTTON_PATH (parasite->button_path), widget); parasite_classeslist_set_widget (PARASITE_CLASSESLIST (parasite->classes_list), widget); parasite_csseditor_set_widget (PARASITE_CSSEDITOR (parasite->widget_css_editor), widget); } @@ -266,7 +266,7 @@ gtkparasite_window_create() parasite_csseditor_new (TRUE), gtk_label_new ("Custom CSS")); - window->button_path = parasite_buttonpath_new (); + window->button_path = parasite_button_path_new (); gtk_container_add (GTK_CONTAINER (box), window->button_path); hpaned = gtk_paned_new (GTK_ORIENTATION_HORIZONTAL); -- 2.30.2